﻿#region Código Gerado Pela Fábrica de Software (Using)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using itau.im.entidade;
#endregion

#region Código Gerado Pela Fábrica de Software (Namespace)
namespace itau.im.dado
{
    #region Código Gerado Pela Fábrica de Software (Interface)

    public interface IProdutoFinanceiroDAO
    {
        #region Código Gerado Pela Fábrica de Software (Métodos)

        ProdutoFinanceiro ObterArvoreProdutoDerivado(int codigoProdutoDerivado);

        IList<FamiliaProdutoFinanceiro> ObterFamiliasProdutoFinanceiroPorCodigoClasseProduto(int codigoClasseProduto);

        void AtualizarFamiliaProdutoFinanceiro(FamiliaProdutoFinanceiro familiaProdutoFinanceiro);

        IList<ProdutoFinanceiro> ObterProdutosFinanceiros();

        IList<ProdutoFinanceiroDerivado> ObterProdutosDerivadosPorIndicadorRegistroAtivo(int indicadorRegistroAtivo);

        IList<ProdutoFinanceiroDerivado> ObterProdutosDerivadosPorCodigoGRNome(int codigoProdutoFinanceiroDerivado, string codigoProdutoFinanceiroGR, string nomeProdutoFinanceiroDerivado);

        void CriarClasseProdutoFinanceiro(ClasseProdutoFinanceiro classeProduto);

        void ExcluirClasseProdutoFinanceiro(int codigoClasse);

        List<ProdutoFinanceiro> ObterProdutoFinanceiroPorCodigoFamiliaProduto(int codigoFamilia);

        FamiliaProdutoFinanceiro ObterFamiliaProdutoFinanceiro(int codigoFamilia);

        IList<ClasseProdutoFinanceiro> ObterClassesProdutoFinanceiro();

        void CriarFamiliaProdutoFinanceiro(FamiliaProdutoFinanceiro familia);

        void ExcluirFamiliaProdutoFinanceiro(int idCodigoFamilia);

        ClasseProdutoFinanceiro ObterClasseProdutoFinanceiro(int codigoClasse);

        void AtualizarClasseProdutoFinanceiro(ClasseProdutoFinanceiro classeProduto);

        IList<ProdutoFinanceiroDerivado> ObterProdutosDerivadosPorProduto(int codigoProduto);

        int ObterProdutoFinanceiroPorProdutoFinanceiroDerivado(int codigoProdutoFinanceiroDerivado);

        IList<FamiliaProdutoFinanceiro> ObterFamiliasProdutoFinanceiro();

        int CriarProdutoFinanceiro(ProdutoFinanceiro produtoFinanceiro);

        int CriarProdutoFinanceiroDerivado(ProdutoFinanceiroDerivado produtoFinanceiroDerivado);

        void ExcluirProdutosFinanceirosDerivados(IList<ProdutoFinanceiroDerivado> listaProdutosFinanceirosDerivados);

        void ExcluirProdutoFinanceiroDerivado(ProdutoFinanceiroDerivado produtoFinanceiroDerivado);

        void ExcluirProdutoFinanceiro(ProdutoFinanceiro produtoFinanceiro);

        void AtualizarProdutoFinanceiro(ProdutoFinanceiro produtoFinanceiro);

        void AtualizarProdutosFinanceirosDerivados(IList<ProdutoFinanceiroDerivado> listaProdutosDerivados);

        void CriarProdutosFinanceirosDerivados(IList<ProdutoFinanceiroDerivado> listaProdutosDerivados);

        IList<ProdutoFinanceiroAlocacao> ObterProdutoFinanceiroAlocacaoPorProduto(int codigoProdutoFinanceiro);

        void AtualizarProdutoFinanceiroDerivado(ProdutoFinanceiroDerivado produtoFinanceiroDerivado);

        ProdutoFinanceiroDerivado ObterProdutoFinanceiroDerivadoPorCodigoGR(string codigoProdutoFinanceiroGR);

        void AtualizarProdutoFinanceiroDerivadoCompleto(ProdutoFinanceiroDerivado produtoFinaceiroDerivado);
        #endregion
    }
    #endregion
}
#endregion
